package com.cysoft.third.echarts.component.tooltip;

import lombok.Data;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.tooltip
 * @date 2025/3/12 10:51
 * @desc 提示框组件配置
 */
@Data
public class Tooltip {

    /**
     * 是否显示提示框组件
     * 包括提示框浮层和 axisPointer
     * 默认值：true
     */
    private Boolean show = true;

    /**
     * 触发类型
     * 可选：'item', 'axis', 'none'
     * 默认值：'item'
     */
    private String trigger = "item";

    /**
     * 坐标轴指示器配置项
     * //TODO:是否公用后续按实际需求调整
     */
    private TooltipAxisPointer axisPointer;

    /**
     * 是否显示提示框浮层
     * 默认值：true
     */
    private Boolean showContent = true;

    /**
     * 是否永远显示提示框内容
     * 默认值：false
     */
    private Boolean alwaysShowContent = false;

    /**
     * 提示框触发的条件
     * 可选：'mousemove', 'click', 'mousemove|click', 'none'
     * 默认值：'mousemove|click'
     */
    private String triggerOn = "mousemove|click";

    /**
     * 浮层显示的延迟（ms）
     * 默认值：0
     */
    private Integer showDelay = 0;

    /**
     * 浮层隐藏的延迟（ms）
     * 默认值：100
     */
    private Integer hideDelay = 100;

    /**
     * 鼠标是否可进入提示框浮层中
     * 默认值：false
     */
    private Boolean enterable = false;

    /**
     * 浮层的渲染模式
     * 可选：'html', 'richText'
     * 默认值：'html'
     */
    private String renderMode = "html";

    /**
     * 是否将 tooltip 框限制在图表的区域内
     * 默认值：false
     */
    private Boolean confine = false;

    /**
     * 是否将 tooltip 框添加到 DOM 中
     * 默认值：false
     */
    private Boolean appendToBody = false;

    /**
     * 提示框的 DOM 节点添加位置
     */
    private Object appendTo;

    /**
     * 提示框的 DOM 节点的 CSS 类
     */
    private String className;

    /**
     * 过渡时间（s）
     * 默认值：0.4
     */
    private Double transitionDuration = 0.4;

    /**
     * 提示框浮层的位置
     */
    private Object position;

    /**
     * 提示框浮层内容格式器
     */
    private String formatter;

    /**
     * tooltip 中数值显示部分的格式化回调函数
     */
    private String valueFormatter;

    /**
     * 提示框浮层的背景颜色
     * 默认值：'rgba(50,50,50,0.7)'
     */
    private String backgroundColor = "rgba(50,50,50,0.7)";

    /**
     * 提示框浮层的边框颜色
     * 默认值：'#333'
     */
    private String borderColor = "#333";

    /**
     * 提示框浮层的边框宽
     */
    private Integer borderWidth = 0;

    /**
     * 提示框浮层内边距
     * 默认值：5
     */
    private Object padding = 5;

    /**
     * 提示框浮层的文本样式
     */
    private TooltipTextStyle textStyle;

    /**
     * 额外附加到浮层的 css 样式
     */
    private String extraCssText;

    /**
     * 多系列提示框浮层排列顺序
     * 可选：'seriesAsc', 'seriesDesc', 'valueAsc', 'valueDesc'
     * 默认值：'seriesAsc'
     */
    private String order = "seriesAsc";


}
